package com.briup.pts.domain.bean;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.PastOrPresent;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* 动物信息表
* &#064;TableName  manager_animal
 */
@Data
public class Animal implements Serializable {

    /**
    * 动物编号
    */
    @JsonProperty("aAnimalId")
    private String aAnimalId;
    /**
    * 动物体重
    */
    @NotBlank(message = "动物的体重信息必须指明")
    @JsonProperty("aWeight")
    private String aWeight;
    /**
    * 动物性别,雌性，雄性
    */
    @JsonProperty("aGender")
    private String aGender;
    /**
    * 健康状态,健康,生病
    */
    @NotBlank(message = "动物的健康状态必须明确")
    @JsonProperty("aHealthy")
    private String aHealthy;
    /**
    * 过程状态,养殖中，已检疫，已出栏，已屠宰，已入库，已销售
    */
    @JsonProperty("aStatus")
    private String aStatus;
    /**
    * 疫苗接种状态未接种,已接种
    */
    @NotBlank(message = "动物的疫苗接种状态必须明确")
    @JsonProperty("aInoculate")
    private String aInoculate;
    /**
    * 录入时间
    */
    @PastOrPresent(message = "动物录入时间不能晚于当前时间")
    @JsonProperty("aTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime aTime;
    /**
    * 批次外键
    */
    @NotBlank(message = "动物所属批次必须指定")
    @JsonProperty("aBatchId")
    private String aBatchId;
    /**
    * 栏圈外键
    */
    @NotBlank(message = "动物所属栏圈必须指定")
    @JsonProperty("aHurdlesId")
    private String aHurdlesId;
}
